iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
Security

資安新人30系列 第 19

資安新人30 Day19 資料庫備份機制

  • 分享至 

  • xImage
  •  

由於常使用的資料庫為SQL SERVER,所以會針對SQL SERVER 資料庫作為學習以及了解/images/emoticon/emoticon13.gif

備份機制

資料庫檔案分為資料檔交易紀錄檔,資料庫備份需要複製資料檔,也要複製交易紀錄檔。

資料檔

  • 只能有1個,副檔名通常使用 .mdf
  • 存有可以找到其他Files位置的功能
  • 存資料的功能

交易紀錄檔

  • 存有可以用來recover所有transactions data的功能
  • 記錄截斷(發生在檢查點之後)會釋出記錄檔中的空間,以供交易記錄重複使用

備份類型

完整備份

複製資料庫內所有資料,

  • 會備份 資料檔交易記錄檔
  • 需要花費更多的時間備份更多的存儲空間

差異備份

需要先執行一次的完整備份

  • 比建立完整備份更快
  • 只會備份資料檔
  • 僅有最近一次完整備份到備份當下這段時間所異動的資料

交易記錄備份

需要先執行一次的完整備份

  • 保存資料的完整交易記錄。
  • 將工作損失風險降至最低,同時也讓記錄截斷。

備份資料庫策略

依照系統實際需求調整備份時間策略,例如可能為每月、每周執行一次完整備份,每天執行差異備份,每個小時甚至幾分鐘執行一次交易紀錄備份/images/emoticon/emoticon06.gif

例如

  • 每周六晚上9點完整備份
  • 每天12點差異備分
  • 每幾個小時交易紀錄備份
  • 每周複製備份資料庫

復原模式

資料庫屬性,可控制交易的記錄方式、是否需要交易記錄備份,可用的還原作業類型

簡單復原模式

  • 只可以支援完整備份差異備份
  • 由於缺乏交易記錄備份,所以必須承受最近一次備份之後所做的變更資料的遺失

完整復原模式

  • 支援完整備份差異備份交易記錄備份
  • 可以復原至特定時間點

大量記錄

  • 支援完整備份差異備份交易記錄備份
  • 無法保證能將資料庫還原到過去任何時間點

查詢備份紀錄

SELECT 
	a.[database_name] as '資料庫名稱',
	CASE a.[type]
	WHEN 'D' THEN N'資料庫'
	WHEN 'I' THEN N'差異資料庫'
	WHEN 'L' THEN N'紀錄'
	WHEN 'F' THEN N'檔案或檔案群組'
	WHEN 'G' THEN N'差異檔案'
	WHEN 'P' THEN N'部分'
	WHEN 'Q' THEN N'差異部分'
	ELSE N'NULL'
	END as '備份類型',
	a.[name] as '備份組的名稱',
	a.[first_lsn] as '備份組中第一個或最舊的記錄序號',
	a.[last_lsn]  as '備份組之後下一個記錄的記錄序號',
	a.[database_backup_lsn] as '最近的完整資料庫備份之記錄序號',
	a.[differential_base_lsn] as '差異備份的基底 LSN',
	a.[backup_finish_date] as '備份作業完成的日期和時間',
	a.[backup_size] as '備份組的大小 (以位元組為單位)'

FROM
	msdb..backupset a INNER JOIN master..sysdatabases b ON 
		a.database_name COLLATE DATABASE_DEFAULT = 
		b.name COLLATE DATABASE_DEFAULT 
ORDER BY
	a.database_name, a.backup_finish_date

語法來源:觀念釐清:SQL Server 完整備份、差異備份、交易記錄備份


參考資料

如果有任何錯誤的地方歡迎提出。/images/emoticon/emoticon41.gif

後記

可以觀看我們團隊的鐵人發文喔~


上一篇
資安新人30 Day18 網站常見攻擊手法(二)
下一篇
資安新人30 Day20 保護 SQL Server 智慧財產權
系列文
資安新人3030
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言